﻿using System;

namespace Aeon.Framework
{

/// <summary>
/// Value object for polygon reference.
/// Can store one triangle plus texture and lighting values.
/// 
/// [TODO] Make convenient. Add, Subtract, Divide, CrossProduct, DotProduct, and Unit.
/// [TODO] Make immutable? OO with properties.
/// 
/// </summary>
public struct Vertex
    {
    public Single X;            // X. Polygon coordinates.
    public Single Y;            // Y.
    public Single Z;            // Z.
    
    public Single U;            // U. Texture coordinates.
    public Single V;            // V.
        
    public IColor Color;        // Vertex color.

    public Vertex(Single x, Single y, Single z)
        {
        X = x;
        Y = y;
        Z = z;

        U = V = 0;
        Color = AeonColors.Default;
        }

    public Vertex(Single x, Single y, Single z, Single u, Single v)
        : this(x,y,z)
        {
        U = u;
        V = v;
        }
    }


}